package csloader.requests
{
	import flash.net.URLRequest;
	
	import csloader.util.KeyValuePair;

	public interface IRequest
	{
		/**
		 * 准备请求
		 * @param url 链接地址
		 * @param parms 请求参数
		 * @param requestMethod 提交方式
		 * @param args
		 * @return 
		 * 
		 */
		function getRequest(url:String, parms:KeyValuePair = null, requestMethod:String = "get", ...args):URLRequest;
		/**
		 * 发送请求
		 * @param request
		 * 
		 */
		function sendRequest(request:URLRequest):void;
		/**
		 * 响应请求，并处理IO异常
		 * @param url 请求的原始URL
		 * @param response 请求返回的数据
		 * 
		 */
		function getResponse(url:String, response:* = null):void;		
		/**
		 * 发送成功响应事件
		 * @param url 请求的原始URL
		 * @param response 请求返回的数据
		 * 
		 */
		function sendResponse(url:String, response:* = null):void;		
		/**
		 * 释放内存
		 * 
		 */
		function dispose():void;
	}
}